1. The Field of the Invention
The present invention relates to dropout control when rendering an image adapted to compensate for thin stems of an image. In particular the present invention relates to systems and methods of dropout control utilized in sub-pixel rendering to compensate for thin or faint stems of an image in which one or more samples are added to an image, the samples corresponding with one or more consecutively spaced samples.
2. Background and Relevant Art
During the rendering of an image related to a character of a particular font, a rasterizer program utilizes “hints” associated with the particular character. The “hints” are created by a typographic engineer or, for less demanding applications, a specialized computer program. Hints are prepared identifying characteristics of the original font design and using instructions that adjust the outline to preserve those characteristics when the object outline is rendered in different sizes on different display devices. The “hints” are created by the typographic engineer by analyzing the outlines of the fonts and adding hints as appropriate. Hinting which is the creation and use of hints in the rendering of a character of an image, is an important part of rendering images. Common hinting goals include maintaining consistent stem weights, consistent alignment, even spacing, and the elimination of pixel discontinuities.
The use of sub-pixel positioning on pixel-oriented display devices has made it possible to display text of smaller-sizes while still maintaining readability. Additionally, narrow or curvilinear portions of larger objects can be rendered more accurately. Anti-aliasing techniques have been adapted to improve the smooth appearance of smaller objects and narrow and curvilinear portions of objects. Examples of such techniques are described in U.S. Pat. No. 6,219,025, which is incorporated herein by reference. While sub-pixel rendering is used to improve the readability of rendered objects, conventional hinting is typically adapted for use with full pixel rendering. As a result sub-pixel rendering can result in sampling error distortions. The cause of sampling error distortions is not limited to sub-pixel rendering but can also be experienced as a result of other causes, for example where small image features are displayed on a display device having a low resolution.
One type of common sampling error is called “dropout.” Traditionally, a dropout condition is defined as an interior region of an object outline that passes through a scan line and between adjacent pixels in which neither pixel has been shaded to represent the portion of the object outline. As used herein, the terms “shaded” and “activated” refer to the luminous intensity of a pixel or a pixel sub-component being controlled to represent the foreground color of a character or another image feature or to distinguish from the background color. Assuming a black foreground color, shading or activating involves applying a luminous intensity other that the full intensity.
Dropout conditions are typically the result of sampling routines of conventional full pixel rendering. In conventional sampling routines, a single sample is taken corresponding with the center of the pixel to determine whether or not the pixel should be shaded. Where the sample at the pixel center falls within the outline of the object or image, the pixel is used to represent a portion of the object. A dropout condition occurs when the interior of the object outlines become so narrow that the contour of the object outline misses one or more pixel centers. If a dropout control technique is not used to correct the dropout condition, the decision-making algorithm for activating a pixel may determine that a particular pixel should not be activated, thereby causing a break at a point in a character or other object that the viewer would expect to be continuous.
With reference now to FIG. 1, there is shown an image rendered with full pixel precision resulting in a dropout condition and the use of conventional dropout control to correct the dropout condition. In FIG. 1A there is shown a bitmap 10 having a plurality of pixels, each pixel having a sample corresponding to the pixel and being positioned at the center of the pixel. An image outline 12 is superimposed on bitmap 10. Image outline 12 corresponds with an image to be rendered. A rendered image displayed without dropout control 16a is also shown. The rendered image displayed without dropout control 16a is comprised of a plurality of pixels in which the samples at the pixel centers fall within the image outline 12. For example, pixel 14 represents a portion of the image outline 12. Pixel 14 is shaded due to the fact that the sample at the center of pixel 14 lies within image outline 12. There is also shown pixel 20. While pixel 20 corresponds with a portion of image outline 12, the sample at the center of pixel 20 does not lie within image outline 12. As a result, pixel 20 is not shaded. Because none of the pixels horizontally adjacent to pixel 20 are shaded, the shading of pixels representing the portion of outline 12 corresponding to pixel 20 is discontinuous. However, the portion of image outline 12 corresponding to pixel 20 is continuous. This results in a dropout condition due to the fact that the interior region of the object outline that passes through the image outline 12 and between adjacent pixels neither of which has been shaded to represent the object outline.
The subjective response of the typical viewer to a dropout condition is to prefer having a pixel illuminated or otherwise controlled to correct discontinuity in the strokes of the object, even if it tends to geometrically distort the object. Therefore, the art has addressed the subject of dropout control so that discontinuous portions of the displayed image are eliminated by identifying any discontinuous portions of the displayed image corresponding to continuous portions of the image outline, and shading adjacent pixels to eliminate the discontinuity.
FIG. 1B illustrates an image 16b rendered using dropout control. Image 16b rendered using dropout control is comprised of a plurality of shaded pixels positioned adjacent one to another without discontinuity. As in FIG. 1A, pixel 14 is shaded due to the fact that the sample at the pixel center lies within image outline 12. However, unlike FIG. 1A, pixel 20 is shaded notwithstanding the fact that the sample at the center of pixel 20 does not lie within the image outline 12. Pixel 20 is shaded utilizing dropout control. As previously explained, conventional dropout control operates by identifying continuous portions of image outline 12 wherein the pixels to be shaded corresponding with image outline 12 are not continuous. Once the discontinuity in the pixels to be shaded is identified, the dropout control operations convert an unshaded pixel that most closely corresponds with the image outline 12 to a shaded pixel (i.e. pixel 20.)
A variety of techniques can be utilized in conventional dropout control operations. One technique for addressing the dropout problem is to activate the pixel on the left of the image outline when both sides of the image outline pass between a horizontal pair of pixels. For a vertical pair of pixels, dropout control according to this technique activates the pixel below the image outline. Another technique of dropout control illuminates the pixel located nearest the contour of the object outline. Dropout control generally provides a rendered image having an appearance preferred by viewers because it preserves the continuity of the object outline.
Sub-pixel rendering introduces a form of dropouts that is not necessarily the result of discontinuous shading of pixels corresponding to the image outline. Distortions in an image outline caused by discontinuous shading of adjacent pixel sub-components is less of a problem in sub-pixel rendering than in full pixel rendering due to the increased resolution offered by pixel sub-components and the increased number of samples per pixel utilized in the supersampling routines. However, sub-pixel rendering routines often use hinting adapted to be utilized with full pixel rendering. This can result in object stems that are unnaturally thin and/or lightly shaded, particularly where anti-aliasing techniques are applied to the image. While the pixel sub-components depicting the image are typically continuous, portions of the object can appear to be discontinuous and/or faint due to the thin object stems and the light shading of the pixel sub-components representing the object stems. This is particularly true of the diagonal and curvilinear portions of the images. While the absence of a sample does not necessarily lead to a discontinuity in sub-pixel rendering, the effect thereof is similar such that it may be perceived as a discontinuity dropout condition. Such perceived discontinuity drop-out conditions resulting from the unnaturally thin and/or faint shading of the object stems also comprise drop-out conditions though they are of a somewhat different nature than that of conventional discontinuity dropout conditions. Such dropout conditions are sometimes referred to as “virtual” dropout as there is no actual discontinuity in the samples corresponding with a continuous object outline.
With reference now to FIG. 2, there is illustrated a dropout condition that is the result of sub-pixel rendering. Pixel grid 30 includes a plurality of pixels arranged in a plurality of rows R1–R5 and a plurality of columns C1–C6. Each pixel comprises three pixel sub-components. In one typical configuration, each pixel comprises a red pixel sub-component, a green pixel sub-component, and a blue pixel sub-component. As will be appreciated by those skilled in the art, a variety of types and configurations of pixels and pixel sub-components can be utilized.
There is shown a portion of an image 32 on pixel grid 30, which is rendered using sub-pixel positioning. It can be seen that the pixel sub-components representing portion of image 32 are assigned a variety of luminous intensity values. In the illustrated embodiment, the foreground color is achieved by having a lesser luminous intensity than the background color. Horizontally adjacent pixel sub-components 34, 36, and 38 are shaded to represent a portion of the image 32. The luminous intensity of each pixel sub-component can be determined using a variety of rendering techniques, including spatially displaced sampling and anti-aliasing (i.e. gray scaling). For a more complete discussion of these techniques, refer to U.S. patent application Ser. No. 10/146,424, entitled “Type Size Dependent Anti-Aliasing in Sub-Pixel Precision Rendering Systems”, filed May 14, 2002, which is incorporated herein by reference.
Anti-aliasing techniques are adapted to smooth the edges of the image to reduce the jagged appearance of the image by reducing the contrast in luminous intensity values between foreground and background pixels at the object edges. For example, pixel sub-component 38 has the lightest shading in comparison to the background color due to the fact that pixel sub-component 38 is positioned at the edge of the image. Pixel sub-component 34 has the greatest amount of shading because pixel sub-component 34 represents an interior portion of the image, the portion of the image having a more substantial stem width. Pixel sub-component 36 has an intermediate shading due to its position between the pixels 34 and 38.
There is also shown a pixel 40 corresponding with a portion of the image 32. Pixel 40 comprises a first pixel sub-component 42, a second pixel sub-component 44, and a third pixel sub-component 46. The portion of the image corresponding with pixel 40 has a narrow stem width. As a result, only pixel sub-components 44 and 46 are shaded while pixel sub-component 42 remains unshaded. Pixel sub-components 44 and 46 have a light shading due to the anti-aliasing techniques utilized in the rendering of the image. The light shading of pixel sub-components 44 and 46 makes the already narrow stem width more difficult to perceive. This creates a dropout condition in the portion of the image corresponding to pixel 40.